CSS pseudoselektorer
En pseudoselektor i CSS begynner med to kolon, f.eks. ::before eller ::after. De selekterer altså ikke selve HTML elementet, men elementer som er tilknyttet HTML elementet.
Pseudoselektorer er nært beslektet med CSS pseudoklasser.
Eksempel på avansert bruk av ::after
På denne nettsiden tester jeg pseudoselektoren ::after i en sitatblokk (blockqote).
Jeg tror denne løsningen er svært dårlig for universell utforming, men jeg er ikke helt sikker. Hvilke fordeler og ulemper ser dere?
Jeg har gitt sitatblokken en selvvalgt attributt i HTML-koden: name. name er navnet på personen som har opphavet til sitatet.
<blockquote name="Vestigius">Si vis pacem, para bellum.</blockquote>
For å automatisk legge til navnet på opphavspersonen etter sitatet (og få fine anførseltegn rundt sitatet) så brukte jeg følgende CSS-kode.
blockquote::before {
content: "«";
}
blockquote::after {
content: "» \a — "attr(name);
white-space: pre;
font-style: italic;
}
blockquote::before gjelder rett før blockquote elementet, og vi ber CSS om å sette inn et anførselstegn for å starte sitatet.
I blockquote::after så gjør vi noen flere interessante saker.
\aer kode for å legge til et linjeskift i tekstattr(name)gir beskjed om at vi skal sette inn verdien fra attributtennamesom vi har definert i HTML-koden. Legg merke til at dette står utenfor hermetegnene.white-space: pre;gjør at nettleseren kommer til å ta\asom en whitespace character. Uten å definere denne egenskapen så vil\abare vises teksten\ai nettleseren.- Vi setter også teksten til å være kursiv
Oversikt over noen typer pseudoselektorer
| Pseudoselektor | Forklaring |
|---|---|
::before |
setter inn innhold før elementet |
::after |
setter inn innhold etter elementet |
::first-letter |
den første bokstaven i et avsnitt |